package com.ruicar.afs.cloud.risk.tortoise.dto.response.apply;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ruicar.afs.cloud.risk.tortoise.anno.RefData;
import com.ruicar.afs.cloud.risk.tortoise.dto.response.GwtRefData;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @Description
 * @Author Peng Jinbo
 * @Date 2020/07/27 18:40
 */
@Data
@AllArgsConstructor
@Builder
@ApiModel("经销商信息 - dealerinfo")
public class GwtDealer extends GwtRefData implements Serializable {

    /**
     * Name
     */
    @JsonInclude
    @JSONField(name = "name")
    @JsonProperty("name")
    private String name;

    /**
     * Dealer province
     */
    @JsonInclude
    @RefData(useFieldName = true)
    @JSONField(name = "dealerprovince")
    @JsonProperty("dealerprovince")
    private String dealerProvince;

    /**
     * Dealer province name
     */
    @JsonIgnore
    @JSONField(serialize = false)
    private String dealerProvinceName;

    /**
     * Dealer city
     */
    @JsonInclude
    @RefData(useFieldName = true)
    @JSONField(name = "dealercity")
    @JsonProperty("dealercity")
    private String dealerCity;

    /**
     * Dealer city name
     */
    @JsonIgnore
    @JSONField(serialize = false)
    private String dealerCityName;

    /**
     * Register date
     */
    @JsonInclude
    @JSONField(name = "registrationtime",format = "yyyy-MM-dd")
    @JsonProperty("registrationtime")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date registerDate;


    /**
     * Dealer level
     */
    @JsonInclude
    @RefData(dicKey = "channelGrade")
    @JSONField(name = "dealerlevel")
    @JsonProperty("dealerlevel")
    private String dealerLevel;

    /**
     * Dealer belong
     */
    @JsonInclude
    @RefData(dicKey = "channelBelong")
    @JSONField(name = "channeltype")
    @JsonProperty("channeltype")
    private String dealerBelong;

    /**
     * 统一社会信用代码
     */
    @JsonInclude
    @JSONField(name = "unifiedsocialcreditcode")
    @JsonProperty("unifiedsocialcreditcode")
    private String unifiedSocialCreditCode;

}
